package eu.hellek.gba.client.pub.common; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.maps.client.HasJso; import com.google.gwt.maps.client.base.LatLng; public class AutocompletePlace implements HasJso { JavaScriptObject jso; public AutocompletePlace(String textboxId) { jso = addAutoComplete(textboxId); } @Override public JavaScriptObject getJso() { return jso; } public LatLng getLatLng() { return new LatLng(getPlaceLat(this.jso), getPlaceLon(this.jso)); } private native JavaScriptObject addAutoComplete(String textboxId) /*-{ var defaultBounds = new $wnd.google.maps.LatLngBounds( new $wnd.google.maps.LatLng(-35.1, -59.25), new $wnd.google.maps.LatLng(-34.05, -57.8)); var input = $doc.getElementById(textboxId); var options = { bounds: defaultBounds }; return new $wnd.google.maps.places.Autocomplete(input, options); }-*/; private native double getPlaceLat(JavaScriptObject jso) /*-{ var place = jso.getPlace(); return place.geometry.location.lat(); }-*/; private native double getPlaceLon(JavaScriptObject jso) /*-{ var place = jso.getPlace(); return place.geometry.location.lng(); }-*/; }